【总结】浅谈 if 的用法
“if ... else ...”语句是我们遇到最简单的一种程序控制语句。 它只有两个分支,所以在实际使用的过程中基本不会有什么问题。 但是如果遇到多路分支的时候,如 if ... else if ... else if ... ... else ... 如果理解不到位,有时候就会有一点问题了。作者之前就遇到了一些问题,这里整理出来大家一起学习。
1、一个 if 一个 else:
x1if (条件 1)2{3 代码块 A;4}56else7{8 代码块 B;9}1011代码块 C;最简单的一种,A或B只会执行一个,然后执行C
2、多个 if 一个 else:
xxxxxxxxxx161if (条件 1)2{3 代码块 A;4}56if (条件 2)7{8 代码块 B;9}1011else12{13 代码块 C;14}1516代码块 D;如果条件1满足,则执行A,之后会从第二个if继续执行,因为第二个if和else组成了一个整体, 并且由于是第一个if之后的语句,所以不论条件1满不满足,都会执行B或者C的其中之一。(作者之前就是这里出了问题,以为上面的代码A、B、C中只会执行一个,也的确是一个比较隐蔽的错误。) 如果想要实现A、B、C只会执行一个的效果效果,即多分支,则需要if, else if, else if, … else if, else语句。
3、一个 if 若干 else if 一个 else:
xxxxxxxxxx231if (条件 1)2{3 代码块 A4}56else if (条件 2)7{8 代码块 B9}1011else if (条件 3)12{13 代码块 C14}1516… …1718else19{20 代码块 Z21}2223代码块 X在这种结构中,所有的语 句都相关联,形成一个整体, 实现了多个平行分支效果:A,B,C … Z中只会有一个被执行,然后执行X。 不过这种情况下,如果你的条件表达式比较简单,还可以用“switch ... case...”语句来写:
xxxxxxxxxx151switch (条件表达式)2{3 case 常量表达式1:4 代码块1;5 case 常量表达式1:6 代码块2;7 case 常量表达式1:8 代码块3;9 … …10 11 case 常量表达式1:12 代码块n; 13 default:14 默认情况代码; // 类似else语句15}